函数

iscntrl

<cctype>

int iscntrl ( int c );

检查字符是否是控制字符(control character)

检查 c 是否是一个控制字符。

控制字符并不占据显示的打印位置(这和在函数 isprint 中返回 true 的可打印字符相反)。

对于标准 ASCII 字符集(在 “C” 环境中),控制字符是 ASCII 值在 0x00 (NUL) 到 0x1f (US) 之间的,加上 0x7f (DEL) 的字符。

头文件 <cctype> 的参考中,有标准 ASCII 字符集的各个字符在不同 ctype 函数的返回值的详细图表。

在 C++ 中,这个函数的 locale-specific 模板版本 iscntrl 在头文件 <locale>中。

参数

c

被检查的字符,被转化为 int 型或 EOF

返回值

如果 c 的确是一个控制字符,则返回一个非0值 (也就是 true ),否则返回0 (也就是 false)。

例子

  1. /* iscntrl example */
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. int main()
  5. {
  6. int i;
  7. char str[] = "first line \n second line \n";
  8. while(!iscntrl(str[i]))
  9. {
  10. putchar(str[i]);
  11. i++;
  12. }
  13. return 0;
  14. }

这段代码追个字符输出一个字符串,直到遇到一个控制字符才跳出 while 循环。在这个例子中,只有第一行被输出,因为第一行以控制字符 ‘\n’ (ASCII 值是 0x0a) 结尾。

另请参阅

函数名 描述
isgraph 检查字符是否有图形表示(graphical representation) (函数)
ispunct 检查字符是否是标点符号(punctuation) (函数)